package com.kwan.xframe.util;

import android.content.Context;
import android.content.SharedPreferences;

import com.kwan.xframe.BaseApplication;

/**
 * Created by Mr.Kwan on 2017-4-10.
 */

public class SPUtil {

	static{
		SP_APP_INFO = BaseApplication.getInstance().getSharedPreferences("SP_APP_INFO_FILE", Context.MODE_PRIVATE);
		SP_USER_INFO = BaseApplication.getInstance().getSharedPreferences("SP_USER_INFO_FILE", Context.MODE_PRIVATE);
	}

	/** APP信息：包括是否是第一次启动APP等 **/
	protected static SharedPreferences SP_APP_INFO;
	/** 用户信息：包括是否已登录等 **/
	protected static SharedPreferences SP_USER_INFO;


	private static String KEY_IS_FIRST_CACHE = "is_first";
	private static String KEY_IS_LOGIN = "is_login";
	private static String KEY_IS_AUTO_LOGIN = "is_auto_login";
	private static String KEY_IS_REMEMBER_ACCOUNT = "is_remember_account";

	private static String KEY_USER_ACCOUNT = "user_account";
	private static String KEY_USER_PWD = "user_pwd";

	private static String KEY_IS_FIRST_CONNECT = "is_first_connect";

	/**
	 * 设置本应用是否第一次启动
	 * @param isFirstIn 是否第一次启动
	 * @return 是否提交成功
	 */
	public static boolean setIsFirstIn(boolean isFirstIn){
		SharedPreferences.Editor sp_app_info_editor = SP_APP_INFO.edit();
		sp_app_info_editor.putBoolean(KEY_IS_FIRST_CACHE, isFirstIn);
		return sp_app_info_editor.commit();
	}

	/**
	 * 获取本应用是否第一次启动(默认是true，是第一次启动，直接启动Splash效果)
	 * @return 是否第一次启动 默认是true
	 */
	public static boolean getIsFirstIn(){
		return SP_APP_INFO.getBoolean(KEY_IS_FIRST_CACHE, true);
	}




	public static boolean setIsFirstConnect(boolean isFirst){
		SharedPreferences.Editor sp_app_info_editor = SP_APP_INFO.edit();
		sp_app_info_editor.putBoolean(KEY_IS_FIRST_CONNECT, isFirst);
		return sp_app_info_editor.commit();
	}


	public static boolean getIsFirstConnect(){
		return SP_APP_INFO.getBoolean(KEY_IS_FIRST_CONNECT, true);
	}


	//--------------------USERINFO--------------------------------------


	/** 1474358881557 1474359702385
	 * 保存用户的登录状态
	 * @param isLogin true：登录，false：未登录
	 */
	public static void setIsLogin(boolean isLogin) {
		SharedPreferences.Editor sp_user_info_editor = SP_USER_INFO.edit();
		sp_user_info_editor.putBoolean(KEY_IS_LOGIN, isLogin);
		sp_user_info_editor.apply();

	}

	/**
	 * 获取用户的登录状态( 默认为 false，未登录)
	 * @return
	 */
	public static boolean getIsLogin() {
		return SP_USER_INFO.getBoolean(KEY_IS_LOGIN, false);
	}


	/**
	 * 设置自动登录
	 * @param isAutoLogin 自动登录
	 */
	public static void setIsAutoLogin(boolean isAutoLogin) {
		SharedPreferences.Editor sp_user_info_editor = SP_USER_INFO.edit();
		sp_user_info_editor.putBoolean(KEY_IS_AUTO_LOGIN, isAutoLogin);
		sp_user_info_editor.apply();

	}

	/**
	 * 获取自动登录
	 * @return 自动登录
	 */
	public static boolean getIsAutoLogin() {
		return SP_USER_INFO.getBoolean(KEY_IS_AUTO_LOGIN, false);
	}

	/**
	 * 设置记住账号
	 * @param isRememberAccount 记住账号
	 */
	public static void setIsRememberAccount(boolean isRememberAccount) {
		SharedPreferences.Editor sp_user_info_editor = SP_USER_INFO.edit();
		sp_user_info_editor.putBoolean(KEY_IS_REMEMBER_ACCOUNT, isRememberAccount);
		sp_user_info_editor.apply();

	}

	/**
	 * 获取记住账号
	 * @return  记住账号
	 */
	public static boolean getRememberAccount() {
		return SP_USER_INFO.getBoolean(KEY_IS_REMEMBER_ACCOUNT, false);
	}

	/**
	 * 设置记住账号
	 * @param userAccount 账号
	 */
	public static void setUserAccount(String userAccount) {
		SharedPreferences.Editor sp_user_info_editor = SP_USER_INFO.edit();
		sp_user_info_editor.putString(KEY_USER_ACCOUNT, userAccount);
		sp_user_info_editor.apply();

	}

	/**
	 * 获取账号
	 * @return  账号
	 */
	public static String getUserAccount() {
		return SP_USER_INFO.getString(KEY_USER_ACCOUNT, "");
	}

	/**
	 * 设置密码
	 * @param pwd 密码
	 */
	public static void setUserPwd(String pwd) {
		SharedPreferences.Editor sp_user_info_editor = SP_USER_INFO.edit();
		sp_user_info_editor.putString(KEY_USER_PWD, pwd);
		sp_user_info_editor.apply();

	}

	/**
	 * 获取密码
	 * @return  密码
	 */
	public static String getUserPwd() {
		return SP_USER_INFO.getString(KEY_USER_PWD, "");
	}




}
